/* Copyright (c) [2020] [ylc]. Licensed under Apache-2.0 License. */

#ifndef __MY_UART_H
#define __MY_UART_H

#include "my_define.h"

#define UART_FLAG_TC  1
#define UART_FLAG_RC  2
#define UART_FLAG_IT_TC  1
#define UART_FLAG_IT_RC  2

//串口配置
#define UART_TX_DATALEN		128		//发送单条数据最大长度
#define UART_RX_DATALEN		128		//接收单条数据最大长度
#define UART_BAUD			115200		//波特率
#define UART_RXOTIME_MS     20

//非队列串口
typedef volatile struct{
	struct{
		u8 rxstart:1;
		u8 rxstop:1;
        u8 txstart:1;                       
	}flags;
	u8 rxotime;//接收超时
	u8 rxbuf[UART_RX_DATALEN];				//用于中断接收数据
	u8 txbuf[UART_TX_DATALEN];				//随便用，可以删掉
    u8 *ptxbuf;
	u16 rxlen;
    u16 txlen;
    u16 txindex;
}mUart_t;
extern mUart_t mUart;


void uart_init(void);
void uart_send_byte(u8 value);
u8 uart_get_flag(u8 flag);

void uart_send(u8 *buf,u16 len)	;
u8 uart_send_it(u8 *buf,u16 len);
void uart_timing_1ms(void);
void uart_get_rx_data_it(u8 value);
void uart_set_tx_data_it(void);
void uart_rxproc(u8 *buf,u16 len);
void Task_uart(void);




#endif



